/**
 * Created by Administrator on 2025/5/8.
 * */
#ifndef GLOBALPARAMETERS_ERA
#define GLOBALPARAMETERS_ERA

#include "Parameters.h"
#include <memory>

const int C1 = 1;
const int C2 = C1 + 1;
const int C3 = C2 + 2;
const int C4 = C3 + 1; // C3+1
const int C5 = C4 + 2;
const int C6 = C5 + 1; // C5+1
const int C7 = C6 + 1; // C6+1
const int C8 = C7 + 1; // C7+1
const int C9 = C8 + 2;
const int C10 = C9 + 1; // AINodeInfer检测到与传统算法差异
const int C11 = C10 + 1; // AIPCNet, AICFARNet启动训练
const int C12 = C11 + 2; // AINodeInfer训练
const int C13 = C12 + 1; // AIPCNet, AICFARNet训练结束
const int C14 = C13 + 2; // AINodeInfer升级
const int C15 = C14 + 1; // AINodeInfer升级后

const int C16 = C15 + 1; // AIE2EInfer检测到与传统算法差异
const int C17 = C16 + 1; // AIE2ENet启动训练
const int C18 = C17 + 2; // AIE2ENet训练结束
const int C19 = C18 + 1; // AIE2EInfer升级
const int C20 = C19 + 1; // AIE2EInfer升级后

const int C21 = C20 + 1; // AIE2EInfer检测到未能正确识别添加的真值信号
const int C22 = C21 + 1; // AIE2ENet启动训练
const int C23 = C22 + 2; // AIE2ENet训练结束
const int C24 = C23 + 1; // AIE2EInfer升级
const int C25 = C24 + 1; // AIE2EInfer升级后

const int C26 = C25 + 3; // AIE2ENet自监督算法误差过大
const int C27 = C26 + 1; // AIE2ENet启动训练
const int C28 = C27 + 2; // AIE2ENet训练结束
const int C29 = C28 + 1; // AIE2EInfer升级
const int C30 = C29 + 1; // AIE2EInfer升级后

const int CEND = C30 + 2;

class GlobalParameters : public Parameters {

private:
GlobalParameters() {
}


public:
static GlobalParameters *shareInstance() {
static std::shared_ptr<GlobalParameters> pInstance(new GlobalParameters);

/** 对Ti6678，从核必须共享主核的实例 */
if (globalParametersInstance) {
return (GlobalParameters *) (globalParametersInstance);
}

return pInstance.get();
}
};
#undef add_parameter
#endif //GLOBALPARAMETERS_ERA
